kali rolling下遇到的一些常见问题归类整理,并给出对应的修复办法
“0%[Waiting for headers]”问题的解决
sudo apt-get install software
时一直等,最后以失败告终
解决:
起初,修改了更新源,还是没有解决
后来
cd /var/cache/apt/archives
rm -rf parial
勉强解决
完美解决 Linux 下 Sublime Text 中文输入
1.保存下面的代码为sublime_imfix.c
/*
sublime-imfix.c
Use LD_PRELOAD to interpose some function to fix sublime input method support for linux.
By Cjacker Huang <jianzhong.huang at i-soft.com.cn>
gcc -shared -o libsublime-imfix.so sublime_imfix.c `pkg-config --libs --cflags gtk+-2.0` -fPIC
LD_PRELOAD=./libsublime-imfix.so sublime_text
*/
#include <gtk/gtk.h>
#include <gdk/gdkx.h>
typedef GdkSegment GdkRegionBox;
struct _GdkRegion
{
long size;
long numRects;
GdkRegionBox *rects;
GdkRegionBox extents;
};
GtkIMContext *local_context;
void
gdk_region_get_clipbox (const GdkRegion *region,
GdkRectangle *rectangle)
{
g_return_if_fail (region != NULL);
g_return_if_fail (rectangle != NULL);
rectangle->x = region->extents.x1;
rectangle->y = region->extents.y1;
rectangle->width = region->extents.x2 - region->extents.x1;
rectangle->height = region->extents.y2 - region->extents.y1;
GdkRectangle rect;
rect.x = rectangle->x;
rect.y = rectangle->y;
rect.width = 0;
rect.height = rectangle->height;
//The caret width is 2;
//Maybe sometimes we will make a mistake, but for most of the time, it should be the caret.
if(rectangle->width == 2 && GTK_IS_IM_CONTEXT(local_context)) {
gtk_im_context_set_cursor_location(local_context, rectangle);
}
}
//this is needed, for example, if you input something in file dialog and return back the edit area
//context will lost, so here we set it again.
static GdkFilterReturn event_filter (GdkXEvent *xevent, GdkEvent *event, gpointer im_context)
{
XEvent *xev = (XEvent *)xevent;
if(xev->type == KeyRelease && GTK_IS_IM_CONTEXT(im_context)) {
GdkWindow * win = g_object_get_data(G_OBJECT(im_context),"window");
if(GDK_IS_WINDOW(win))
gtk_im_context_set_client_window(im_context, win);
}
return GDK_FILTER_CONTINUE;
}
void gtk_im_context_set_client_window (GtkIMContext *context,
GdkWindow *window)
{
GtkIMContextClass *klass;
g_return_if_fail (GTK_IS_IM_CONTEXT (context));
klass = GTK_IM_CONTEXT_GET_CLASS (context);
if (klass->set_client_window)
klass->set_client_window (context, window);
if(!GDK_IS_WINDOW (window))
return;
g_object_set_data(G_OBJECT(context),"window",window);
int width = gdk_window_get_width(window);
int height = gdk_window_get_height(window);
if(width != 0 && height !=0) {
gtk_im_context_focus_in(context);
local_context = context;
}
gdk_window_add_filter (window, event_filter, context);
}
2.编译动态库:
gcc -shared -o libsublime_imfix.so sublime_imfix.c pkg-config --libs --cflags gtk+-2.0
-fPIC
(编译环境和GTK的dev包请自行安装)
apt-get install build-essential
apt-get install libgtk2.0-dev
3.设置 LD_PRELOAD 并启动 Sublime Text:
LD_PRELOAD=./libsublime_imfix.so sublime_text
为了不用每次启动Sublime Text都打这么一长串东西,写了个启动Sublime的脚本:
#!/bin/bash
subl_home="~/software/sublime_text_3"
ld_lib="$subl_home/libsublime_imfix.so"
sh -c "LD_PRELOAD=$ld_lib $subl_home/sublime_text"
将脚本保存为subl_fcitx
,chmod +x,然后cp到/usr/bin/目录下直接执行就可以了
看视频自动黑屏休眠问题
setting->power->blankscrenn(锁屏时间)设置为never
hexo静态博客部署问题
1.npm install hexo-cli -g安装完成之后hexo命令会放在node/bin文件夹下,需要添加软链接或者更改环境变量才可以使用hexo命令
2.hexo deploy时Deployer not found : git错误
–安装 npm install hexo-deployer-git –save
–将deploy 的 type由github改为git
64位开启32位架构,ia32-libs问题
该软件包已经被其他版本替代,只要启用32位架构就可以了,不用安装ia32-libs,在安装32位软件的过程中会自动安装需要的依赖。
启用32位架构:
dpkg –add-architecture i386
sudo apt-get update
不用ia32-libs也能开到兼容32位,如果实在不行可以用下面命令安装其他版本替代apt-get install libgtk2.0-0:i386
apt-get install lib32ncurses5
解决Could not get lock
/var/cache/apt/archives/lock
在apt-get upgrade的时候,遇到:
E: Could not get lock /var/cache/
apt/archives/lock - open (11 Resource temporarily unavailable)
E: Unable to lock the download directory
解决办法如下:
sudo rm -rf /var/cache/apt/archives/lock
sudo apt-get update
然后apt-get就恢复正常了。
解决dpkg status database is lock…
原因是包管理器没有正确关闭。需要重启计算机或者重新打开终端 输入:
sudo rm /var/lib/dpkg/lock
sudo dpkg --configure -a
然后重新安装包。
缩短终端目录
平时我们使用linux终端命令行的时候,常常会被一个问题困扰,那就是文件路径过长,有时候甚至超过了一行,这样看起来非常别扭,其实只要两步就可以解决这个问题:
1.修改.bashrc文件(用户根目录下)
vim 打开.bashrc文件,找到如下这行:
if [ "$color_prompt " = yes ]; then
PS1 ='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\W \[\033[00m\]\$ '
else
PS1 ='${debian_chroot:+($debian_chroot)}\u@\h:\W \$ '
将上面这行代码中的小写w改为大写的W,保存退出(wq)
2.在终端下执行 source .bashrc
完成上面两步操作之后,重新进入到一个目录,此时在终端下只显示当前文件所在目录名称。
kali修复 add-apt-repository
add-apt-repository是一个导入ppa源的工具,不知为何kali-linux去掉了
安装依赖
apt-get install python-software-properties
编辑vim add-apt-repository
#!/bin/bash
if [ $# -eq 1 ]
NM=`uname -a && date`
NAME=`echo $NM | md5sum | cut -f1 -d" "`
then
ppa_name=`echo "$1" | cut -d":" -f2 -s`
if [ -z "$ppa_name" ]
then
echo "PPA name not found"
echo "Utility to add PPA repositories in your debian machine"
echo "$0 ppa:user/ppa-name"
else
echo "$ppa_name"
echo "deb http://ppa.launchpad.net/$ppa_name/ubuntu lucid main" >> /etc/apt/sources.list
apt-get update >> /dev/null 2> /tmp/${NAME}_apt_add_key.txt
key=`cat /tmp/${NAME}_apt_add_key.txt | cut -d":" -f6 | cut -d" " -f3`
apt-key adv --keyserver keyserver.ubuntu.com --recv-keys $key
rm -rf /tmp/${NAME}_apt_add_key.txt
fi
else
echo "Utility to add PPA repositories in your debian machine"
echo "$0 ppa:user/ppa-name"
fi
继续执行
cp add-apt-repository.sh /usr/sbin/add-apt-repository
chmod o+x /usr/sbin/add-apt-repository
chown root:root /usr/sbin/add-apt-repository